﻿namespace Basic.Base.Encryption;

public interface IAsymmetricAlgorithm : IDisposable
{

    byte[] Encrypt(byte[] rawData);

    byte[] Decrypt(byte[] encryptionData);

    byte[] SignData(byte[] encryptionData);

    bool VerifyData(byte[] encryptionData, byte[] signData);


    string Encrypt(string rawString);

    string Decrypt(string encryptionString);

    string SignData(string encryptionData);

    bool VerifyData(string encryptionData, string signData);

    (string PublicKey, string PrivateKey) GenerateKey();

}
